最大流于最小割的转换。
假设现在棋盘上非障碍的位置全部摆满了骑士,我们拿走 $x$ 个的骑士可以使棋盘上的所有骑士互不冲突,求最小的 $x$.
可以跑匈牙利,也可以跑最大流算法,我选择跑 $Dinic$。
所有编号为奇数的点向源点 $s$ 连边,所有编号为偶数的点向汇点 $t$ ,连边,边权为 $1$.可以知道,同奇偶编号的点是无法互相攻击的,我们将在奇数和偶数之间可以攻击到彼此的点连一条边权无限大的边。
然后跑一遍 $Dinic$ 。
然后就没了。
Code:
1 |
|
本文标题:【题解】 「网络流24题」骑士共存问题 网络流 luoguP3355
文章作者:Qiuly
发布时间:2019年02月15日 - 00:00
最后更新:2019年03月29日 - 13:54
原始链接:http://qiulyblog.github.io/2019/02/15/[题解]luoguP3355/
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。